霍夫变换(直线检测、圆检测) 您所在的位置:网站首页 opencv 圆检测 霍夫变换(直线检测、圆检测)

霍夫变换(直线检测、圆检测)

2022-06-05 23:51| 来源: 网络整理| 查看: 265

可以看出如果笛卡尔坐标系的点共线,这些点在霍夫空间对应的直线交于一点:这也是必然,共线只有一种取值可能。

如果不止一条直线呢?再看看多个点的情况(有两条直线):

 

 

 

 

 

 

 

在opencv中步骤解读:

具体步骤:

1. 彩色图像->灰度图

2. 去噪(高斯核)

3. 边缘提取(梯度算子、拉普拉斯算子、canny、sobel) 

4. 二值化(判断此处是否为边缘点,就看灰度值==255)

5. 映射到霍夫空间(准备两个容器,一个用来展示hough-space概况,一个数组hough-space用来储存voting的值,因为投票过程往往有某个极大值超过阈值,多达几千,不能直接用灰度图来记录投票信息)

6. 取局部极大值,设定阈值,过滤干扰直线

7. 绘制直线、标定角点

函数HoughLines的实现代码

#include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv.hpp" #include using namespace cv; using namespace std; using std::cout; int main() { Mat g_srcImage, midImage, dstImage; namedWindow("[原始图]"); g_srcImage = imread("E:\\VS2015Opencv\\vs2015\\project\\picture\\01.jpg"); if (!g_srcImage.data) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有